import commonFunction from '@/utils/commonFunction.js'
import commonSensors from '@/utils/commonSensors.js'
import programSetting from '@/utils/programSetting.js'
import commonUtoolsTrack from '@/utils/commonUtoolsTrack.js'
import sensors from '@/js_sdk/Sensorsdata-UniPlugin-JS/Sensorsdata-UniPlugin-JS/index.js'
import sr from 'sr-sdk-wxapp'
import Vue from 'vue'
import App from './App'
import store from './store'
import EFSTracking from '@/utils/efs-tracking.js'
import EFSABTestTracking from '@/utils/efs-abtest-tracking.js'
import api from '@/api/api';
import uView from "uview-ui";
Vue.use(uView);

Vue.config.productionTip = false
Vue.prototype.$sensors = sensors
// Vue.prototype.$store = store
Vue.prototype.$EFSTracking = EFSTracking
Vue.prototype.$EFSABTestTracking = EFSABTestTracking
Vue.prototype.$onLaunched = new Promise(resolve => {
  Vue.prototype.$isResolve = resolve
})
Vue.prototype.$commonFunction = commonFunction
Vue.prototype.$commonSensors = commonSensors
Vue.prototype.$programSetting = programSetting
Vue.prototype.$commonUtoolsTrack = commonUtoolsTrack
Vue.prototype.$preventReClick = commonFunction.preventReClick
// sensors.setPara({
// 	name: 'sensors',
// 	server_url: api.environment == 'trial' ? 'https://datatracking-exchange.emacallan.com/sa?project=default' : 'https://datatracking-exchange.emacallan.com/sa?project=production'
// });
sensors.register({
	platform_name: '麦卡伦',
	platform_type: '小程序'
});
sensors.init({
  server_url:api.environment == 'trial' ? 'https://datatracking-exchange.emacallan.com/sa?project=default' : 'https://datatracking-exchange.emacallan.com/sa?project=production',
  show_log:false,//是否开启日志
  name:"sensors",
  allow_amend_share_path: false,
  autoTrack:{//小程序全埋点配置
      appLaunch: true, // 默认为 true，false 则关闭 $MPLaunch 事件采集
      appShow: true, // 默认为 true，false 则关闭 $MPShow 事件采集
      appHide: true, // 默认为 true，false 则关闭 $MPHide 事件采集
      pageShow: true, // 默认为 true，false 则关闭 $MPViewScreen 事件采集
      pageShare: true, // 默认为 true，false 则关闭 $MPShare 事件采集
      mpClick: true, // 默认为 false，true 则开启 $MPClick 事件采集， VUE3 不支持
      mpFavorite: true, // 默认为 true，false 则关闭 $MPAddFavorites 事件采集
      pageLeave: true // 默认为 false， true 则开启 $MPPageLeave事件采集
  }
});
    //弹窗 SDK 初始化，需在 init 之后调用
    // sensors.popupInit({
    //     // 是否打印 log 日志
    //     show_log: true,
    //     // SFO 地址，由 SF 后端提供，sfo 在线服务地址
    //     api_base_url: 'https://api.sandbox.cloud.efashionchina.com',
    //     enable_popup:true,//初始化后是否允许弹窗，若禁止则在需要弹窗时调用 enablePopup  @platform Android
    //     app_id: 'wx158a61365a8c8fd6'
    // });
sr.init({
  /**
   * 有数 - ka‘接入测试用’ 分配的 app_id，对应的业务接口人负责   正式token: 'bi6e09ec2b251d488d', 测试token: 'bie5b11f7ac307445c'
   */
  token: api.environment == 'formal' ? 'bi6e09ec2b251d488d' : 'bie5b11f7ac307445c',
  /**
   * 微信小程序appID，以wx开头
   */
  appid: 'wx158a61365a8c8fd6',
  /**
   * 如果使用了小程序插件，需要设置为 true
   */
  usePlugin: true,
  /**
   * 开启打印调试信息， 默认 false
   */
  // debug: api.environment == 'formal' ? false : true,
  debug: false,
  /**
	 * 建议开启-开启自动代理 Page， 默认 false
	 * sdk 负责上报页面的 browse 、leave、share 等事件
	 * 可以使用 sr.page 代替 Page(sr.page(options))
	 * 元素事件跟踪，需要配合 autoTrack: true
	 */
	proxyPage: true,
	/**
	 * 建议开启-开启组件自动代理， 默认 false
	 * sdk 负责上报页面的 browse 、leave、share 等事件
	 */
	proxyComponent: true,
	// 建议开启-是否开启页面分享链路自动跟踪
	openSdkShareDepth: true,
	// 建议开启-元素事件跟踪，自动上报元素事件，入tap、change、longpress、confirm
	autoTrack: true,
	//建议开启-自动化获取openId，授权过的小程序可自动化获取openId
	openAutoTrackOpenId: true,
	//开启自动代理，此功能为有数 SDK 核心功能，建议开启，开启前请完成「小程序授权」操作，详见下文“init 参数说明”部分
	autoProxy: {
		//开启后代理采集启动应用事件，默认为true
		app_launch: true,
		//开启后代理采集显示应用事件，默认为true
		app_show: true,
		//开启后代理采集隐藏应用事件，默认为true
		app_exit: true,
		//开启后代理采集浏览页面事件，默认为true
		browse_page: true,
		//开启后代理采集离开页面事件，默认为true
		leave_page: true,
		//开启后代理采集元素事件，v2.0.0版本之前默认为true，v2.0.0版本之后默认为false
		autoTrack: true,
		//开启后代理采集下拉刷新页面事件，v2.0.0版本之前默认为true，v2.0.0版本之后默认为false
		page_pull_down_refresh: true,
		//开启后代理采集上拉触底页面事件，默认为true
		page_reach_bottom: true,
		//开启后代理采集分享页面事件，默认为true
		page_share_app_message: true,
		//开启后自动采集openid，默认为true
		openAutoTrackOpenId: true,
		//开启后自动采集unionId，默认为true
		openAutoTrackUnionId: true,
		//开启后自动采集分享裂变，默认为true
		openSdkShareDepth: true,
	}
})
Vue.prototype.$sr = sr
App.mpType = 'app'

const app = new Vue({
  store,
  EFSTracking,
  EFSABTestTracking,
	...App
})

app.$mount()
